package com.zhiwei.msf.common.util;

import org.springframework.beans.BeanUtils;

import com.zhiwei.msf.common.dto.PageDataDto;
import com.zhiwei.msf.common.vo.PageDataVo;

/**
 * function:
 * author: zhiwei_yang
 * time: 2020/2/11-22:27
 */
public class PageDataUtil {

    /**
     * pageDataVo 转 pageDataDto
     *
     * @param pageDataVo
     * @param pageDataClass
     * @param <S>
     * @param <T>
     * @return
     */
    public static <S, T> PageDataDto<T> convertPageVoToDto(PageDataVo<S> pageDataVo, Class<T> pageDataClass) {
        PageDataDto<T> pageDataDto = new PageDataDto<>();
        BeanUtils.copyProperties(pageDataVo, pageDataDto);
        pageDataDto.setData(BeanConverterUtil.convertToBeanList(pageDataVo.getData(), pageDataClass));
        return pageDataDto;
    }

    /**
     * pageDataDto 转 pageDataVo
     *
     * @param pageDataDto
     * @param pageDataClass
     * @param <S>
     * @param <T>
     * @return
     */
    public static <S, T> PageDataVo<T> convertPageDtoToVo(PageDataDto<S> pageDataDto, Class<T> pageDataClass) {
        PageDataVo<T> pageDataVo = new PageDataVo<>();
        BeanUtils.copyProperties(pageDataDto, pageDataVo);
        pageDataVo.setData(BeanConverterUtil.convertToBeanList(pageDataVo.getData(), pageDataClass));
        return pageDataVo;
    }
}
